<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // JS组成
    // ECMAScript  => 基础语法 (ECMAScript5 => ES5  -> ES6(2015))
    // BOM         => 浏览器对象模型 (Browser Object Model)  -> 提供了操作浏览器的接口和方法(打开新的窗口 页面跳转  历史记录   设备相关的信息  屏幕相关的信息)
    // DOM         => 文档对象模型 (Document Object Model)   -> 提供了操作文档的接口和方法



    //  BOM         => 浏览器对象模型 (Browser Object Model)

    // window(窗口)  => 全局对象 -> 当前窗口中所有全局的变量和函数都存储在window中(系统内置 用户自定义)   => 一般window可以省略的


    // var a = 100;
    // var b = 200;
    // function add(a, b) {
    //     return a + b;
    // }

    // Math
    // alert()
    // String()

    // console.log(window);
    // console.log(window.a);
    // console.log(window.b);
    // console.log(window.add);
    // console.log(window.alert);
    // console.log(window.Math);
    // console.log(window.String);

    // 注意:  
    // 在全局作用域中,尽量避免使用name status作为变量, name->window.name 窗口的名称, status -> window.status 窗口的状态 只能是字符串类型,如果赋值其他类型会隐式转化为字符串 
    var name = "张三";
    var name = 100;
    var name = true;
    var name = null;
    var name = undefined;
    var name = [1, 2, 3];  // '1,2,3'   数组转字符串,逗号分隔的字符串 arr.join(",")
    var name = { a: 1, b: 2 };  // '[object Object]'  对象隐式转字符串  '[object(对象类型) Object(构造函数Object创建的)]'
    console.log(name);

    var status = "张三";
    var status = 100;
    var status = true;
    var status = null;
    var status = undefined;
    var status = [1, 2, 3];  // '1,2,3'   数组转字符串,逗号分隔的字符串 arr.join(",")
    var status = { a: 1, b: 2 };  // '[object Object]'  对象隐式转字符串  '[object(对象类型) Object(构造函数Object创建的)]'
    console.log(name);




</script>

</html>